package com.hm.system.share.service.mongo.system;

import java.util.List;
import java.util.Map;

import com.hm.common.model.PageInfo;
import com.hm.common.util.CommonDef.OperationRecord;
import com.hm.system.mongo.annotation.RecycleRecordAnnotation;
import com.hm.system.mongo.domain.def.DbSystemDef;
import com.hm.system.mongo.domain.def.SysMenuDef;
import com.hm.system.mongo.vo.system.SysMenuInfoVo;

/**
 * @author shishun.wang
 * @date 2016年5月25日 上午12:51:22
 * @version 1.0
 * @describe
 */
public interface SysMenuInfoService {

	@RecycleRecordAnnotation(value = OperationRecord.STANDARD_NEW, documentDef = DbSystemDef.SYS_MENU_INFO)
	public String addSysMenuInfo(SysMenuInfoVo sysMenuInfo, String operationUser);

	@RecycleRecordAnnotation(value = OperationRecord.STANDARD_UPDATE, documentDef = DbSystemDef.SYS_MENU_INFO)
	public String updateSysMenuInfo(SysMenuInfoVo sysMenuInfo, String operationUser);

	public SysMenuInfoVo getSysMenuInfo(String id);

	@RecycleRecordAnnotation(value = OperationRecord.STANDARD_DELETE, documentDef = DbSystemDef.SYS_MENU_INFO)
	public String deleteSysMenuInfo(SysMenuInfoVo sysMenuInfo, String operationUser);

	public List<Map<String,Object>> childsById(String menuId, SysMenuDef menuDef);

	public PageInfo<SysMenuInfoVo> querySysMenuInfo(String name, String code, String url, String parentId,
			SysMenuDef menuDef, Long startTime, Long endTime, Integer pageNumber, Integer pageSize);
}
